#include <cstdio>
#include <cstdarg>
#include <malloc.h>
#include <iostream>

// #define LOG(fmt, ...) printf("[%s %d]" fmt, __FILE__, __LINE__, ##__VA_ARGS__);

// void myprintf(const char *fmt, ...)
// {
//     va_list ap;
//     va_start(ap, fmt);
//     char *ptr;
//     int ret = vasprintf(&ptr, fmt, ap);
//     if (ret != -1)
//     {
//         printf(ptr);
//         free(ptr);
//     }
//     return;
// }
void myprintf()
{
    std::cout << std::endl;
}

template <class T, class... Args>
void myprintf(const T &v, Args &&...args)
{
    std::cout << v << ' ';
    if (sizeof...(args) > 0)
    {
        myprintf(std::forward<Args>(args)...);
    }
    else
    {
        myprintf();
    }
}

int main()
{
    // LOG("比特就业课");
    myprintf("wml");
    myprintf("wml"
             "wml");
    myprintf("wml", "wml", 666);
    return 0;
}